## python 异步编程

import time
import asyncio
'''
def func1(name):
    print(name,"func1 开始")
    time.sleep(5)
    print(name,"func1 结束")

for i in ["a","b","c"]:
    func1(i)
'''

# 异步编程
async def func1(name):
    print(name,"func1 开始")
    # 如果函数内部有耗时操作，需要使用await让他自己运行  不会阻塞其他函数 主程序返回
    await asyncio.sleep(5)
    print(name,"func1 结束")

async def func2(): # 定义一个异步函数
    t1 = asyncio.create_task(func1("a")) # 创建一个任务
    t2 = asyncio.create_task(func1("b"))
    t3 = asyncio.create_task(func1("c"))
    await t1  # 等待t1执行完毕
    await t2
    await t3
asyncio.run(func2()) # 运行异步函数